import '../shared/models/word.dart';

class EsperantoVocabularyExtended {
  // 颜色类 (Colors)
  static final List<Word> colors = [
    Word(id: 'ruĝa', esperanto: 'ruĝa', english: 'red', pronunciation: 'RU-ĝa', definition: 'The color of blood', category: 'Colors', examples: ['La rozo estas ruĝa'], audioUrl: '', difficulty: 1),
    Word(id: 'blua', esperanto: 'blua', english: 'blue', pronunciation: 'BLU-a', definition: 'The color of sky', category: 'Colors', examples: ['La ĉielo estas blua'], audioUrl: '', difficulty: 1),
    Word(id: 'verda', esperanto: 'verda', english: 'green', pronunciation: 'VER-da', definition: 'The color of grass', category: 'Colors', examples: ['La herbo estas verda'], audioUrl: '', difficulty: 1),
    Word(id: 'flava', esperanto: 'flava', english: 'yellow', pronunciation: 'FLA-va', definition: 'The color of sun', category: 'Colors', examples: ['La suno estas flava'], audioUrl: '', difficulty: 1),
    Word(id: 'oranĝa', esperanto: 'oranĝa', english: 'orange', pronunciation: 'o-RAN-ĝa', definition: 'The color of orange fruit', category: 'Colors', examples: ['La oranĝo estas oranĝa'], audioUrl: '', difficulty: 1),
    Word(id: 'purpura', esperanto: 'purpura', english: 'purple', pronunciation: 'pur-PU-ra', definition: 'A bluish-red color', category: 'Colors', examples: ['La violo estas purpura'], audioUrl: '', difficulty: 1),
    Word(id: 'bruna', esperanto: 'bruna', english: 'brown', pronunciation: 'BRU-na', definition: 'The color of earth', category: 'Colors', examples: ['La tero estas bruna'], audioUrl: '', difficulty: 1),
    Word(id: 'nigra', esperanto: 'nigra', english: 'black', pronunciation: 'NI-gra', definition: 'The darkest color', category: 'Colors', examples: ['La nokto estas nigra'], audioUrl: '', difficulty: 1),
    Word(id: 'blanka', esperanto: 'blanka', english: 'white', pronunciation: 'BLAN-ka', definition: 'The lightest color', category: 'Colors', examples: ['La neĝo estas blanka'], audioUrl: '', difficulty: 1),
    Word(id: 'griza', esperanto: 'griza', english: 'gray', pronunciation: 'GRI-za', definition: 'A neutral color', category: 'Colors', examples: ['La nuboj estas grizaj'], audioUrl: '', difficulty: 1),
    Word(id: 'roza', esperanto: 'roza', english: 'pink', pronunciation: 'RO-za', definition: 'A light red color', category: 'Colors', examples: ['La floro estas roza'], audioUrl: '', difficulty: 1),
    Word(id: 'viola', esperanto: 'viola', english: 'violet', pronunciation: 'vi-O-la', definition: 'A purple color', category: 'Colors', examples: ['La ĉielo estas viola'], audioUrl: '', difficulty: 2),
    Word(id: 'indiga', esperanto: 'indiga', english: 'indigo', pronunciation: 'in-DI-ga', definition: 'A deep blue color', category: 'Colors', examples: ['La maro estas indiga'], audioUrl: '', difficulty: 2),
    Word(id: 'turkoiza', esperanto: 'turkoiza', english: 'turquoise', pronunciation: 'tur-ko-I-za', definition: 'A blue-green color', category: 'Colors', examples: ['La ŝtono estas turkoiza'], audioUrl: '', difficulty: 2),
    Word(id: 'magenta', esperanto: 'magenta', english: 'magenta', pronunciation: 'ma-GEN-ta', definition: 'A purplish-red color', category: 'Colors', examples: ['La koloro estas magenta'], audioUrl: '', difficulty: 2),
  ];

  // 身体部位 (Body Parts)
  static final List<Word> bodyParts = [
    Word(id: 'kapo', esperanto: 'kapo', english: 'head', pronunciation: 'KA-po', definition: 'Upper part of body', category: 'Body Parts', examples: ['Mia kapo doloras'], audioUrl: '', difficulty: 1),
    Word(id: 'okulo', esperanto: 'okulo', english: 'eye', pronunciation: 'o-KU-lo', definition: 'Organ of sight', category: 'Body Parts', examples: ['Mi havas du okulojn'], audioUrl: '', difficulty: 1),
    Word(id: 'orelo', esperanto: 'orelo', english: 'ear', pronunciation: 'o-RE-lo', definition: 'Organ of hearing', category: 'Body Parts', examples: ['Mi aŭdas per la oreloj'], audioUrl: '', difficulty: 1),
    Word(id: 'nazo', esperanto: 'nazo', english: 'nose', pronunciation: 'NA-zo', definition: 'Organ of smell', category: 'Body Parts', examples: ['La nazo flaras'], audioUrl: '', difficulty: 1),
    Word(id: 'buŝo', esperanto: 'buŝo', english: 'mouth', pronunciation: 'BU-ŝo', definition: 'Opening for eating', category: 'Body Parts', examples: ['Mi manĝas per la buŝo'], audioUrl: '', difficulty: 1),
    Word(id: 'dento', esperanto: 'dento', english: 'tooth', pronunciation: 'DEN-to', definition: 'Hard structure in mouth', category: 'Body Parts', examples: ['Mi havas blankajn dentojn'], audioUrl: '', difficulty: 1),
    Word(id: 'lango', esperanto: 'lango', english: 'tongue', pronunciation: 'LAN-go', definition: 'Muscular organ in mouth', category: 'Body Parts', examples: ['La lango gustumas'], audioUrl: '', difficulty: 1),
    Word(id: 'kolo', esperanto: 'kolo', english: 'neck', pronunciation: 'KO-lo', definition: 'Part connecting head to body', category: 'Body Parts', examples: ['La kolo estas longa'], audioUrl: '', difficulty: 1),
    Word(id: 'ŝultro', esperanto: 'ŝultro', english: 'shoulder', pronunciation: 'ŜUL-tro', definition: 'Joint connecting arm to torso', category: 'Body Parts', examples: ['Mia ŝultro doloras'], audioUrl: '', difficulty: 1),
    Word(id: 'brako', esperanto: 'brako', english: 'arm', pronunciation: 'BRA-ko', definition: 'Upper limb', category: 'Body Parts', examples: ['Mi havas du brakojn'], audioUrl: '', difficulty: 1),
    Word(id: 'mano', esperanto: 'mano', english: 'hand', pronunciation: 'MA-no', definition: 'End part of arm', category: 'Body Parts', examples: ['Mi skribas per la mano'], audioUrl: '', difficulty: 1),
    Word(id: 'fingro', esperanto: 'fingro', english: 'finger', pronunciation: 'FIN-gro', definition: 'Digit of hand', category: 'Body Parts', examples: ['Mi havas kvin fingrojn'], audioUrl: '', difficulty: 1),
    Word(id: 'gambo', esperanto: 'gambo', english: 'leg', pronunciation: 'GAM-bo', definition: 'Lower limb', category: 'Body Parts', examples: ['Mi kuras per la gamboj'], audioUrl: '', difficulty: 1),
    Word(id: 'piedo', esperanto: 'piedo', english: 'foot', pronunciation: 'pi-E-do', definition: 'End part of leg', category: 'Body Parts', examples: ['Mi marŝas per la piedoj'], audioUrl: '', difficulty: 1),
    Word(id: 'koro', esperanto: 'koro', english: 'heart', pronunciation: 'KO-ro', definition: 'Organ that pumps blood', category: 'Body Parts', examples: ['La koro batas'], audioUrl: '', difficulty: 1),
    Word(id: 'pulmo', esperanto: 'pulmo', english: 'lung', pronunciation: 'PUL-mo', definition: 'Organ for breathing', category: 'Body Parts', examples: ['Mi spiras per la pulmoj'], audioUrl: '', difficulty: 2),
    Word(id: 'stomako', esperanto: 'stomako', english: 'stomach', pronunciation: 'sto-MA-ko', definition: 'Digestive organ', category: 'Body Parts', examples: ['Mia stomako malsatas'], audioUrl: '', difficulty: 2),
    Word(id: 'hepato', esperanto: 'hepato', english: 'liver', pronunciation: 'he-PA-to', definition: 'Organ that processes toxins', category: 'Body Parts', examples: ['La hepato estas grava'], audioUrl: '', difficulty: 3),
    Word(id: 'reno', esperanto: 'reno', english: 'kidney', pronunciation: 'RE-no', definition: 'Organ that filters blood', category: 'Body Parts', examples: ['Mi havas du renojn'], audioUrl: '', difficulty: 3),
    Word(id: 'cerbo', esperanto: 'cerbo', english: 'brain', pronunciation: 'CER-bo', definition: 'Organ of thought', category: 'Body Parts', examples: ['La cerbo pensas'], audioUrl: '', difficulty: 2),
  ];

  // 衣服类 (Clothing)
  static final List<Word> clothing = [
    Word(id: 'vesto', esperanto: 'vesto', english: 'clothing', pronunciation: 'VES-to', definition: 'Items worn on body', category: 'Clothing', examples: ['Mi portas veston'], audioUrl: '', difficulty: 1),
    Word(id: 'ĉemizo', esperanto: 'ĉemizo', english: 'shirt', pronunciation: 'ĉe-MI-zo', definition: 'Upper body garment', category: 'Clothing', examples: ['Mia ĉemizo estas blua'], audioUrl: '', difficulty: 1),
    Word(id: 'pantalono', esperanto: 'pantalono', english: 'pants', pronunciation: 'pan-ta-LO-no', definition: 'Lower body garment', category: 'Clothing', examples: ['Mi portas pantalonon'], audioUrl: '', difficulty: 1),
    Word(id: 'robo', esperanto: 'robo', english: 'dress', pronunciation: 'RO-bo', definition: 'One-piece garment', category: 'Clothing', examples: ['Ŝi portas belan robon'], audioUrl: '', difficulty: 1),
    Word(id: 'jako', esperanto: 'jako', english: 'jacket', pronunciation: 'JA-ko', definition: 'Outer garment', category: 'Clothing', examples: ['La jako estas varma'], audioUrl: '', difficulty: 1),
    Word(id: 'mantelo', esperanto: 'mantelo', english: 'coat', pronunciation: 'man-TE-lo', definition: 'Heavy outer garment', category: 'Clothing', examples: ['Mi bezonas mantelon'], audioUrl: '', difficulty: 1),
    Word(id: 'ŝuo', esperanto: 'ŝuo', english: 'shoe', pronunciation: 'ŜU-o', definition: 'Footwear', category: 'Clothing', examples: ['Miaj ŝuoj estas novaj'], audioUrl: '', difficulty: 1),
    Word(id: 'ŝtrumpo', esperanto: 'ŝtrumpo', english: 'sock', pronunciation: 'ŜTRUM-po', definition: 'Foot covering', category: 'Clothing', examples: ['Mi portas ŝtrumpojn'], audioUrl: '', difficulty: 1),
    Word(id: 'ĉapelo', esperanto: 'ĉapelo', english: 'hat', pronunciation: 'ĉa-PE-lo', definition: 'Head covering', category: 'Clothing', examples: ['La ĉapelo estas granda'], audioUrl: '', difficulty: 1),
    Word(id: 'zono', esperanto: 'zono', english: 'belt', pronunciation: 'ZO-no', definition: 'Waist accessory', category: 'Clothing', examples: ['La zono estas nigra'], audioUrl: '', difficulty: 1),
    Word(id: 'glovo', esperanto: 'glovo', english: 'glove', pronunciation: 'GLO-vo', definition: 'Hand covering', category: 'Clothing', examples: ['Mi portas glovojn'], audioUrl: '', difficulty: 1),
    Word(id: 'skipo', esperanto: 'skipo', english: 'scarf', pronunciation: 'SKI-po', definition: 'Neck covering', category: 'Clothing', examples: ['La skipo estas varma'], audioUrl: '', difficulty: 1),
    Word(id: 'okulvitroj', esperanto: 'okulvitroj', english: 'glasses', pronunciation: 'o-kul-VI-troj', definition: 'Vision aid', category: 'Clothing', examples: ['Mi portas okulvitrojn'], audioUrl: '', difficulty: 2),
    Word(id: 'horloĝo', esperanto: 'horloĝo', english: 'watch', pronunciation: 'hor-LO-ĝo', definition: 'Time-keeping device', category: 'Clothing', examples: ['Mia horloĝo estas preciza'], audioUrl: '', difficulty: 2),
    Word(id: 'ringo', esperanto: 'ringo', english: 'ring', pronunciation: 'RIN-go', definition: 'Finger jewelry', category: 'Clothing', examples: ['Ŝi portas orajn ringon'], audioUrl: '', difficulty: 2),
  ];

  // 家庭用品 (Household Items)
  static final List<Word> household = [
    Word(id: 'domo', esperanto: 'domo', english: 'house', pronunciation: 'DO-mo', definition: 'A dwelling place', category: 'Household', examples: ['Mia domo estas granda'], audioUrl: '', difficulty: 1),
    Word(id: 'ĉambro', esperanto: 'ĉambro', english: 'room', pronunciation: 'ĈAM-bro', definition: 'An enclosed space', category: 'Household', examples: ['La ĉambro estas malgranda'], audioUrl: '', difficulty: 1),
    Word(id: 'lito', esperanto: 'lito', english: 'bed', pronunciation: 'LI-to', definition: 'Furniture for sleeping', category: 'Household', examples: ['Mi dormas en la lito'], audioUrl: '', difficulty: 1),
    Word(id: 'tablo', esperanto: 'tablo', english: 'table', pronunciation: 'TA-blo', definition: 'Furniture with flat surface', category: 'Household', examples: ['La tablo estas bruna'], audioUrl: '', difficulty: 1),
    Word(id: 'seĝo', esperanto: 'seĝo', english: 'chair', pronunciation: 'SE-ĝo', definition: 'Furniture for sitting', category: 'Household', examples: ['Mi sidas sur seĝo'], audioUrl: '', difficulty: 1),
    Word(id: 'fenestro', esperanto: 'fenestro', english: 'window', pronunciation: 'fe-NES-tro', definition: 'Opening in wall', category: 'Household', examples: ['La fenestro estas malfermita'], audioUrl: '', difficulty: 1),
    Word(id: 'pordo', esperanto: 'pordo', english: 'door', pronunciation: 'POR-do', definition: 'Entrance to room', category: 'Household', examples: ['La pordo estas fermita'], audioUrl: '', difficulty: 1),
    Word(id: 'muro', esperanto: 'muro', english: 'wall', pronunciation: 'MU-ro', definition: 'Vertical structure', category: 'Household', examples: ['La muro estas alta'], audioUrl: '', difficulty: 1),
    Word(id: 'planko', esperanto: 'planko', english: 'floor', pronunciation: 'PLAN-ko', definition: 'Bottom surface of room', category: 'Household', examples: ['La planko estas pura'], audioUrl: '', difficulty: 1),
    Word(id: 'plafono', esperanto: 'plafono', english: 'ceiling', pronunciation: 'pla-FO-no', definition: 'Top surface of room', category: 'Household', examples: ['La plafono estas blanka'], audioUrl: '', difficulty: 1),
    Word(id: 'kuirejo', esperanto: 'kuirejo', english: 'kitchen', pronunciation: 'ku-i-RE-jo', definition: 'Room for cooking', category: 'Household', examples: ['Mi kuiras en la kuirejo'], audioUrl: '', difficulty: 1),
    Word(id: 'banĉambro', esperanto: 'banĉambro', english: 'bathroom', pronunciation: 'ban-ĈAM-bro', definition: 'Room for washing', category: 'Household', examples: ['La banĉambro estas pura'], audioUrl: '', difficulty: 1),
    Word(id: 'salono', esperanto: 'salono', english: 'living room', pronunciation: 'sa-LO-no', definition: 'Room for relaxing', category: 'Household', examples: ['Ni sidas en la salono'], audioUrl: '', difficulty: 1),
    Word(id: 'ŝranko', esperanto: 'ŝranko', english: 'closet', pronunciation: 'ŜRAN-ko', definition: 'Storage furniture', category: 'Household', examples: ['Miaj vestoj estas en la ŝranko'], audioUrl: '', difficulty: 1),
    Word(id: 'spegulo', esperanto: 'spegulo', english: 'mirror', pronunciation: 'spe-GU-lo', definition: 'Reflective surface', category: 'Household', examples: ['Mi rigardas en la spegulon'], audioUrl: '', difficulty: 1),
  ];

  // 交通工具 (Transportation)
  static final List<Word> transportation = [
    Word(id: 'aŭto', esperanto: 'aŭto', english: 'car', pronunciation: 'AŬ-to', definition: 'Motor vehicle', category: 'Transportation', examples: ['Mi veturas per aŭto'], audioUrl: '', difficulty: 1),
    Word(id: 'buso', esperanto: 'buso', english: 'bus', pronunciation: 'BU-so', definition: 'Public transport vehicle', category: 'Transportation', examples: ['La buso estas granda'], audioUrl: '', difficulty: 1),
    Word(id: 'trajno', esperanto: 'trajno', english: 'train', pronunciation: 'TRAJ-no', definition: 'Railway vehicle', category: 'Transportation', examples: ['La trajno estas rapida'], audioUrl: '', difficulty: 1),
    Word(id: 'aviadilo', esperanto: 'aviadilo', english: 'airplane', pronunciation: 'a-vi-a-DI-lo', definition: 'Flying vehicle', category: 'Transportation', examples: ['La aviadilo flugas'], audioUrl: '', difficulty: 1),
    Word(id: 'ŝipo', esperanto: 'ŝipo', english: 'ship', pronunciation: 'ŜI-po', definition: 'Water vehicle', category: 'Transportation', examples: ['La ŝipo naĝas'], audioUrl: '', difficulty: 1),
    Word(id: 'biciklo', esperanto: 'biciklo', english: 'bicycle', pronunciation: 'bi-CIK-lo', definition: 'Two-wheeled vehicle', category: 'Transportation', examples: ['Mi pedalas biciklon'], audioUrl: '', difficulty: 1),
    Word(id: 'motociklo', esperanto: 'motociklo', english: 'motorcycle', pronunciation: 'mo-to-CIK-lo', definition: 'Motorized two-wheeler', category: 'Transportation', examples: ['La motociklo estas rapida'], audioUrl: '', difficulty: 1),
    Word(id: 'taksio', esperanto: 'taksio', english: 'taxi', pronunciation: 'tak-SI-o', definition: 'Hired car', category: 'Transportation', examples: ['Mi vokis taksion'], audioUrl: '', difficulty: 1),
    Word(id: 'metro', esperanto: 'metro', english: 'subway', pronunciation: 'ME-tro', definition: 'Underground railway', category: 'Transportation', examples: ['La metro estas rapida'], audioUrl: '', difficulty: 2),
    Word(id: 'helikoptero', esperanto: 'helikoptero', english: 'helicopter', pronunciation: 'he-li-kop-TE-ro', definition: 'Rotorcraft', category: 'Transportation', examples: ['La helikoptero flugas'], audioUrl: '', difficulty: 2),
  ];

  // 获取所有扩展词汇
  static List<Word> get allExtendedVocabulary => [
    ...colors,
    ...bodyParts,
    ...clothing,
    ...household,
    ...transportation,
  ];

  // 根据类别获取词汇
  static List<Word> getWordsByCategory(String category) {
    switch (category) {
      case 'Colors':
        return colors;
      case 'Body Parts':
        return bodyParts;
      case 'Clothing':
        return clothing;
      case 'Household':
        return household;
      case 'Transportation':
        return transportation;
      default:
        return allExtendedVocabulary;
    }
  }

  // 获取所有类别
  static List<String> getAllCategories() {
    return ['Colors', 'Body Parts', 'Clothing', 'Household', 'Transportation'];
  }
} 